﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace PhuongTrinhBac2
{
    public partial class Form1 : Form
    {
        Double a, b, c, x1, x2, x, d;
        int kq;
        public Form1()
        {
            InitializeComponent();
        }

        private void btnketqua_Click(object sender, EventArgs e)
        {
            reset();
            a = Convert.ToDouble(txta.Text); b = Convert.ToDouble(txtb.Text); c = Convert.ToDouble(txtc.Text);
            if(a == 0)
            {
                giaiphuongtrinhbac1(b, c);
            }
            else
            {
                giaiphuongtrinhbac2(a, b, c);
            }

            switch (kq)
            {
                case -1: lblketqua.Text = "Phương trình vô số nghiệm"; 
                    break;
                case 0: lblketqua.Text = "Phương trình vô nghiệm";
                    break;
                case 1:
                    {
                        lblketqua.Text = "Phương trình có 1 nghiệm";
                        lblx1.Text = x.ToString();
                    }
                    break;
                case 2:
                    {
                        lblketqua.Text = "Phương trình có 2 nghiệm";
                        lblx1.Text = x1.ToString();
                        lblx2.Text = x2.ToString();
                    }
                    break;
            }
        }

        private void giaiphuongtrinhbac1(Double b, Double c)
        {
            if (b == 0)
            {
                if (c == 0)
                {
                    kq = -1;
                }
                else
                    kq = 0;
            }
            else
            {
                kq = 1;
                x = -c / b;
            }
        }

        private void giaiphuongtrinhbac2(Double a, Double b, Double c)
        {
            d = tinhdelta(a, b, c);
            if (d < 0)
            {
                kq = 0;
            }
            else
                if (d == 0)
                {
                    kq = 1;
                    x = -b / (2 * a);
                }
                else
                {
                    kq = 2;
                    x1 = -b - (float)Math.Sqrt(d) / (2 * a);
                    x2 = -b + (float)Math.Sqrt(d) / (2 * a);
                }
        }

        private Double tinhdelta(Double a, Double b, Double c)
        {
            return b * b - 4 * a * c;
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void reset()
        {
            lblx1.ResetText();
            lblx2.ResetText();
        }
    }
}
